/** Definition of the DataNumber class.
 * @file 
 * @author Jeremy Schultz
 */

#ifndef	__DATANUMBER_H_
#define	__DATANUMBER_H_

#include <string>
#include <sstream>
#include <vector>
#include "WordData.h"

#define DATANUMBER	static_cast<DataNumber*>

using namespace std;

/** Provide support for a Numbers in WordData.
 */
class DataNumber : public WordData	{
	private:
		int value;		/**< Stores the number value or the array size */
		bool isArray;   /**< If number is an array or not */

	public:
		/** Constructor.
		 */
		DataNumber();

		/** Constructor.
		 * @param _value The value of the Number
		 */
		DataNumber(int _value);

		/** Constructor.
		 * @param _value The value of the Number
		 * @param _isArray set to true if this is an array
		 */
		DataNumber(int _value, bool _isArray);


		/** Getter - value.
		 * @return The value of the Number
		 */
		int Value();

		/** Setter - value.
		 * @param _value	Set the value to this number
		 */
		void setValue(int _value);

		/** Getter - Size.
		 * @return The size of the Number Array
		 */
		int Size();


		/** A String representation of DataNumber.
		 * @return A string
		 * The string format will be: <br>
		 *  type: <i>int</i> value: <i>int</i> size: <i>int</i>
		 */
		string toString();
};
#endif

